.TH std::fgetc,std::getc 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::fgetc,std::getc \- std::fgetc,std::getc

.SH Synopsis
   Defined in header <cstdio>
   int fgetc( std::FILE* stream );
   int getc( std::FILE* stream );

   Reads the next character from the given input stream.

.SH Parameters

   stream - to read the character from

.SH Return value

   The obtained character on success or EOF on failure.

   If the failure has been caused by end of file condition, additionally sets the eof
   indicator (see std::feof()) on stream. If the failure has been caused by some other
   error, sets the error indicator (see std::ferror()) on stream.

.SH Example


// Run this code

 #include <cstdio>
 #include <cstdlib>

 int main()
 {
     int is_ok = EXIT_FAILURE;
     FILE* fp = std::fopen("/tmp/test.txt", "w+");
     if (!fp)
     {
         std::perror("File opening failed");
         return is_ok;
     }

     int c; // Note: int, not char, required to handle EOF
     while ((c = std::fgetc(fp)) != EOF) // Standard C I/O file reading loop
         std::putchar(c);

     if (std::ferror(fp))
         std::puts("I/O error when reading");
     else if (std::feof(fp))
     {
         std::puts("End of file reached successfully");
         is_ok = EXIT_SUCCESS;
     }

     std::fclose(fp);
     return is_ok;
 }

.SH Output:

 End of file reached successfully

.SH See also

   gets                  reads a character string from stdin
   (deprecated in C++11) \fI(function)\fP
   (removed in C++14)
   fputc                 writes a character to a file stream
   putc                  \fI(function)\fP
   ungetc                puts a character back into a file stream
                         \fI(function)\fP
   C documentation for
   fgetc,
   getc
